/** drawArrays函数
 * 
 * @param mode
 *  指定绘制的方式，可接收以下常量符号：
 *    gl.POINTS：             一系列点
 *    gl.LINES：              一系列单独的线段，如果点的个数是奇数，最后一个点将被忽略
 *                            (v0,v1)、(v2,v3)
 *    gl.LINE_STRIP：         一系列连接的线段    (v0,v1)、(v1,v2)
 *    gl.LINE_LOOP,           一系列连接的线段(闭环)    (v0,v1),(v1,v2,(v2,v0)
 *    gl.TRIANGLES,           一系列单独的三角形
 *    gl.TRIANGLE_STRIP,      一系列条带状的三角形，前三个点构成第一个三角形，从第二个点开始的三个点构成第二个三角形
 *                             (v0,v1,v2)、(v2,v1,v3)、(v2,v3,v4)
 *    gl.TRIANGLE_FAN         一系列三角形组成的图形。前三个点构成第一个三角形，接下来的一个点和前三个的最后一条边组成接下来的三角形
 *                              (v0,v1,v2)、(v0,v2,v3)....
 * @param first
 *  指定从哪个顶点开始绘制(整型数)
 * @param count
 *  指定绘制需要用到多少个顶点(整型数)，即执行多少次顶点着色器
 * 
 * @return
 *  INVALID_ENUM    传入的mode参数不是前述参数之一
 *  INVALID_VALUE   参数first或count是负数
 */
 export function drawPt(gl, vertexSize = 1) {
  gl.drawArrays(gl.POINTS, 0, vertexSize)
}

export function drawTriangle(gl, vertexSize = 3) {
  gl.drawArrays(gl.TRIANGLES, 0, vertexSize)
}
export function drawLine(gl, vertexSize = 2) {
  gl.drawArrays(gl.LINES, 0, vertexSize)
}
export function drawLineStrip(gl, vertexSize) {
  gl.drawArrays(gl.LINE_STRIP, 0, vertexSize)
}
export function drawLineLoop(gl, vertexSize) {
  gl.drawArrays(gl.LINE_LOOP, 0, vertexSize)
}

export function drawRect(gl) {
  gl.drawArrays(gl.TRIANGLE_STRIP, 0, 4)
}

// ==================== 带索引
export function drawIndexTriangle(gl, cellsLen) {
  gl.drawElements(gl.TRIANGLES, cellsLen, gl.UNSIGNED_BYTE, 0);
}
export function drawIndexPolyLine(gl, cellsLen) {
  gl.drawElements(gl.LINE_STRIP, cellsLen, gl.UNSIGNED_SHORT, 0);
}
